我的系统环境是CentOS release 6.6(Final)
1、安装Nginx
可以参考CentOS6.6环境中安装Nginx详细过程笔记博客文章
2、安装Python3.6
[root@localhost home]# wget https://www.Python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
[root@localhost home]# tar xJf Python-3.6.1.tar.xz
[root@localhost Python-3.6.1]# cd Python-3.6.1.tar.xz
[root@localhost Python-3.6.1]# ./configure --prefix=/usr/local/python3 && make && make install
#创建软连接
[root@localhost Python-3.6.1]# ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@localhost Python-3.6.1]# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
3、安装virtualenv并通过该工具搭建Python应用环境
virtualenv是一个创建独立Python开发环境的工具,
它可以为应用提供独立的Python运行环境,解决不同应用间多版本的冲突问题
①安装virtualenv
[root@localhost ~]# pip3 install virtualenv
安装成功后在Python3.6的安装目录中的bin目录下会有一个virtualenv可执行文件
②创建应用目录demo
[root@localhost ~]# mkdir demo
③在demo目录下创建一个python3.6虚拟环境
可以使用-p PYTHON_EXE选项在创建虚拟环境的时候指定python版本(只能指定已安装好的python版本)
[root@localhost ~]# cd demo
[root@localhost demo]# /usr/localpython3/bin/virtualenv -p /usr/bin/python3 venv
创建成功后在demo目录下新建了一个venv目录,该目录其实类似Python的安装目录
④激活虚拟环境
[root@localhost demo]# source venv/bin/activate
激活后就可以在该环境下安装Python各种模块了
关闭虚拟环境的密令如下:
(venv)[root@localhost demo]# deactivate
⑤安装flask
(venv)[root@localhost demo]# pip install flask
安装成功后在demo目录下创建一个基于flask框架的代码示例来测试的python文件index.py,内容如下:
#/usr/bin/env python
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
app.run()
⑥安装gunicorn(venv)[root@localhost demo]# pip install gunicorn
安装成功后,使用gunicorn运行基于flask的index.py文件
(venv)[root@localhost demo]# gunicorn --workers=3 index:app -b 127.0.0.1:8080
其中的--workes指定运行的进程数,后面的表示地址绑定
index:app中 index代表当前运行的module名,也就是文件名,后面的app是创建的Flask对象
具体配置的查看官网:http://docs.gunicorn.org/en/latest/settings.html#config
运行成功后,可以查看一下index进程
[root@localhost demo]# ps -ef | grep index
⑦修改Nginx配置文件,具体如下:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 80;
server_name pw.com;
location / {
#设置代理地址
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location /static/ {
if (-f $request_filename) {
rewrite ^/static/(.*)$ /static/$1 break;
}
}
}
}
gunicorn启动python文件后,启动Nginx,直接访问本机的ip地址即可